package com.silky.common.bean;


import com.silky.common.utils.PageList;
import lombok.Data;

import java.sql.Connection;

/**
 * 节点配置
 */
@Data
public class NodeConfig {
    /**
     * 节点类型:single,join ,update
     * single:单表
     * join:两表关联
     * update:更新(含插入，修改及删除)
     */
    private  String type;
    /**
     * 两表关联属性列表，逗号分隔 ，相当于
     * 格式:别名.字段名=别名.字段名,别名.字段名=别名.字段名
     * 如:bf.fileinfo_id1=af.fileinfo_id1,bf.fileinfo_id2=af.fileinfo_id2
     * 相当于：bf.fileinfo_id1=af.fileinfo_id1 and bf.fileinfo_id2=af.fileinfo_id2
     */
    private String joinColumns;
    /**
     * 每批记录数
     */
    private int batchSize;
    /**
     * 数据源名称
     */
    private String dataSourceName;
    /**
     * 别名，仅single,join节点使用
     */
    private String alias;
    /**
     * join结果别名,仅join节点使用
     */
    private String joinResultAlias;
    /**
     * 原始sql 未分页的sql，可以带where条件，多表关联(不不建议)
     */
    private String orginSql;
    /**
     *  分页sql模板 不同数据库的分页sql模板不一样
     */
    private String  pageSqlTemplate;
    /**
     * 更新sql，仅仅update节点使用，可以带别名替换，比如：fieldName = ${cf.fileinfoId}
     */
    private String updateSql;
    /**
     * join结果字段，仅join节点使用，多个字段逗号分隔
     */
    private String joinResultFields;
    /**
     * 分页数据
     */
    private PageList pageList ;
    /**
     * 处理过程使用数据库连接
     */
    private Connection dbConnection;
}
